1. Technical Field
The present invention relates to software provided as a service, and more particularly to a system and method for processing requests from multiple tenants.
2. Discussion of Related Art
Software-as-a-Service (SaaS) lowers the cost of development, customization, deployment and operation of a software application while supporting multiple tenants over the Internet. In general, SaaS is associated with business software applications. SaaS is a Web-based software application deployed and operated as a hosted service over the Internet and accessed by users.
In a SaaS model, multi-tenancy support can be applied to four different software layers: the application, middleware, the Virtual Machine (VM), and the operating system layers. Referring to FIG. 1, for the application layer, there are four levels of SaaS maturity model. Level one 101 has a separate instance for each tenant's customized code base and it is similar to the Application Service Provider (ASP) software application model. Level two 102 has a separate instance for each tenant but the instances come from a single code base with configuration options. Level three 103 has a single instance for all tenants with configurable metadata for each tenant. Level four 104 has a load-balanced farm of identical instances with configurable metadata for its tenants.
Contract management is an example of a SaaS application of the level three type; Contracts are required in most business transactions as they constitute the binding relationships between parties. Automation of some contract management tasks in the electronic contract lifecycle creates a substantial value. This value stems from improved productivity and security, effectively aggregated contract information; accelerated contract transaction time and lifecycle processes; reduced contractual errors and risk; enabled revenue forecast and profit optimization as well as better compliance enforcement Different companies have different requirements on presentations, business rules, workflows, document flows, database and security in managing their contracts.
In most commercial electronic contract management applications available today, different customized code base has to be developed, deployed and operated to support each tenant. Few advanced commercial electronic contract management applications use a single code base with configuration options to support multi-tenants. However, typically a separate instance of the code base still needs to be deployed and operated for each tenant even in these applications to achieve scalability. Development and maintenance costs associated with a service or business model supporting a single application instance for each tenant, e.g., as in an electronic contract management application and other business applications, can render such a service unaffordable for some tenants.
Therefore, a need exists for a system and method for a non-tenant aware SaaS application supporting multi-tenancy.